package creational.builder;

/**
 * 这是一个构造对象的创建类的抽象，里面指定了创建这个类需要进行的操作，以及返回创建类的方法
 * 这里面的各种操作，可能是较为复杂的，且需要按照一定顺序执行，例如 CPU 的安装必须在主板的安装之后才能进行。
 * 这些操作对于客户端，应该是不可见的，这是创建模式的根本要求：将复杂的实现对外透明。
 */
public interface IComputerBuilder {

    void setCpu();

    void setMainboard();

    Computer createComputer();
}
